The Application of Correctness Preserving Transformations to Software Maintenance
نویسندگان
چکیده
The size and complexity of hardware and software systems continues to grow, making the introduction of subtle errors a more likely possibility. A major goal of software engineering is to enable developers t o construct systems that operate reliably despite increased size and complexity. One approach to achieving this goal is through formal methods: mathematically based languages, techniques and tools for specifying and verifying complex software systems. In this paper, we apply a theoretical tool that is supported by many formal methods, the correctness preserving transformation (CPT), t o a real software engineering problem: the need for optimization during the maintenance of code. We present four program transformations and a model that forms a framework for proof of correctness. We prove the transformations correct and then apply them to a cryptography application implemented in CS+. Our experience shows that CPTs can facilitate generation of more efficient code while guaranteeing the preservation of original behavior. KeywordsReverse engineering, formal methods, public key cryptography, correctness preserving transformation, code optimization.
منابع مشابه
Refactoring, Refinement, and Reasoning - A Logical Characterization for Hybrid Systems
Refactoring of code is a common device in software engineering. As cyber-physical systems (CPS) become ever more complex, similar engineering practices become more common in CPS development. Proper safe developments of CPS designs are accompanied by a proof of correctness. Since the inherent complexities of CPS practically mandate iterative development, frequent changes of models are standard p...
متن کاملSome Observations on Dirac Measure-Preserving Transformations and their Results
Dirac measure is an important measure in many related branches to mathematics. The current paper characterizes measure-preserving transformations between two Dirac measure spaces or a Dirac measure space and a probability measure space. Also, it studies isomorphic Dirac measure spaces, equivalence Dirac measure algebras, and conjugate of Dirac measure spaces. The equivalence classes of a Dirac ...
متن کاملVerification of Model Transformations
Model transformations are a central element of model-driven development (MDD) approaches such as the model-driven architecture (MDA). The correctness of model transformations is critical to their effective use in practical software development, since users must be able to rely upon the transformations correctly preserving the semantics of models. In this paper we define a formal semantics for m...
متن کاملData migration: A theoretical perspective
Article history: Accepted 25 September 2012 Available online 23 December 2012 In this paper we investigate data migration fundamentals from a theoretical perspective. Following the framework of abstract interpretation, we first discuss models and schemata at different levels of abstraction to establish a Galois connection between abstract and concrete models. A legacy kernel is discovered at a ...
متن کاملFormal Model-Driven Engineering: Generating Data and Behavioural Components
Model-driven engineering is the automatic production of software artefacts from abstract models of structure and functionality. By targeting a specific class of system, it is possible to automate aspects of the development process, using model transformations and code generators that encode domain knowledge and implementation strategies. Using this approach, questions of correctness for a compl...
متن کامل